package Vue;

import java.util.Observable;
import java.util.Observer;

import javax.swing.JFrame;
import javax.swing.JOptionPane;

import Modele.Modele;

public class Vue extends JFrame implements Observer
{
	
	JFrame frame;
	
	private Afficheur afficheur;
	
	public Vue()
	{
		frame = new JFrame();
		frame.setTitle("LOG210-TP1");
		frame.setBounds(100,100,750,500);
		frame.setLayout(null);
		frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
		frame.setVisible(true);
		afficheur = Afficheur.getAfficheur();
		afficheur.afficher( frame.getContentPane(), AffichageAccueil.getAffichage() );
	}

	public void update(Observable arg0, Object arg1) 
	{
		Modele temp = (Modele)arg1;
		
		// C'est ici que sera le switch selon les codes de retour
		// ex.: state == 0 -> erreur
		// 		state == 1 -> Client log
		// 		state == 2 -> Livreur log
		//		state == 3 -> Restaurateur log
		//		state == 4 -> Entrepreneur log
		//		state == 5 -> AffichageMenu
		//		state == 6 -> AffichageClient
		//
		//	* En sachant ce qui s'est passé, on peut aller trouver
		//	  le user specific qui s'est loggé avec le modele

		if( temp.getState() == 5 )
		{
			this.afficheur.afficher(frame.getContentPane(), AffichageMenu.getAffichage(temp) );
		}
		else if( temp.getState() == 6 )
		{
			this.afficheur.afficher(frame.getContentPane(), AffichageClient.getAffichage(temp) );
		}
		
	}
	
	public void demanderFermeture()
	{
		System.exit(0);
	}

}
